class Resoconti::DettagliMovimentoMagazzinoController < DefaultController
  require_role self.parent_name.underscore
  #record_select :search_on => [:numero, :descrizione], :order_by => :numero, :full_text_search => true 
  
  active_scaffold :dettaglio_movimento_magazzino do |config|
    config.label = Application.controller_label(self)
    config.actions.add :export, :field_search
    #config.actions.exclude :create, :update

    # definizione colonne
    columns = [:prodotto_magazzino, :quantita, :note, :riferimento]
    columns_form = [:prodotto_magazzino, :quantita, :note]

    # visualizzazione colonne
    config.columns = config.show.columns = config.list.columns = columns
    config.subform.columns = columns_form
    #config.update.columns = config.create.columns = columns_form
    config.field_search.columns = columns# + [:riferimento]

    # configurazione colonne
    config.columns[:prodotto_magazzino].form_ui = :record_select #:select
    config.columns[:quantita].options[:smovimenti_magazzinoize] = 5
    config.columns[:note].options[:size] = 60
    
    # azioni
    #config.columns[:movimento_magazzino].set_link('show', :controller => 'resoconti/movimenti_magazzino')
    config.columns[:movimento_magazzino].clear_link
  end
  
  def calcola_giacenza(record)
    record.prodotto_magazzino.update_attributes(:giacenza => record.prodotto_magazzino.dettagli_movimento_magazzino.sum(:quantita))
  end
  def save_riferimento(record)
    record.update_attributes(:riferimento_type => record.movimento_magazzino.riferimento_type)
    record.update_attributes(:riferimento_id => record.movimento_magazzino.riferimento_id)
  end

  
  def after_create_save(record)
    calcola_giacenza(record)
    save_riferimento(record)
  end
  def after_update_save(record)
    calcola_giacenza(record)
    save_riferimento(record)
  end
end
